import axios from "axios";
// import { Message } from "element-ui";
// import router from "@/router/index";
// import store from "@/store/index";
import { GoodStore } from "../stores/goods"


// 创建实例时配置默认值
const request = axios.create({
  //线上接口
  baseURL: "http://81.69.235.62:3000/",
  timeout: 5000,
});

// 创建实例后修改默认值
request.defaults.headers.post["Content-Type"] =
  "application/x-www-form-urlencoded"; //FormData



// 拦截器
// 在请求或响应被 then 或 catch 处理前拦截它们。
// 添加请求拦截器 (在请求发送之前可以执行一系列操作)
request.interceptors.request.use(
  function (res) {
    let store = GoodStore()
    if (store.userInfo.token) {
      res.headers.token = store.userInfo.token
    }

    // 在发送请求之前做些什么,把用户的token放入请求头里
    // res.headers.token = lc.token;
    // var lc = JSON.parse(localStorage.getItem("authorityInfo"));
    // if (lc) {
    //   // console.log("请求拦截token",token);
    //   res.headers.token = lc.token;
    // }


    return res;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// function tokenTips() {
//   Message.error("token过期,请重新登录!"); //错误提示
//   store.dispatch("authority/exitLoginStatus"); //清除数据
//   router.replace({
//     path: "/login",
//     query: { ReturnURL: router.history.current.fullPath },
//   }); //重新登录
// }

// var debounceTokenTips = _.debounce(tokenTips, 300);

// 添加响应拦截器  (在服务器响应之后(响应的结果可能是成功,也可能是失败的),数据被Promise实例存储之前)
request.interceptors.response.use(
  function (response) {
    // console.log(response.data);
    //响应成功状态码200
    if (response.data.code == 200) {
      //  后端会给前端返回数据 -> 接口返回的结果时成功的(登录成功)
      return response.data; //直接返回响应成功的数据
    } else {
      // 后端会给前端返回数据   接口返回的结果是失败的(未注册 /密码有误)
      throw new Error(response.data.message); //创建了一个错误的对象,存储错误的信息  err.message
    }
  },
  //   var isSuccess = response.data.code == 200; //请求成功
  //   var isTokenBreak = response.data.code == 10119; // token过期

  //   if (isSuccess) {
  //     //  后端会给前端返回数据 -> 接口返回的结果时成功的(登录成功)
  //     return response.data; //直接返回数据
  //   } else if (isTokenBreak) {
  //     //token过期

  //     debounceTokenTips();
  //   } else {
  //     // 后端会给前端返回数据   接口返回的结果是失败的(未注册 /密码有误)

  //     // 弹出提示信息
  //     Message({
  //       message: response.data.message,
  //       type: "error",
  //     });

  //     throw new Error(response.data.code); //创建了一个错误的对象,存储错误的信息  err.message
  //   }
  // },
  function (error) {
    return Promise.reject(error); // 返回失败状态的Promise实例
  }
);

export default request; //默认暴露
